﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UniMana.Utils.Controls;
using UniMana.Utils.Helper;
using System.Windows.Forms;
namespace UniMana.Data
{
    public class System_UserInfo
    {

        #region /*Không thay đổi*/
        public bds m_bds = new bds();
       
        public void Save()
        {
            m_bds.EndEdit();
            m_data.m_DCSave.SubmitChanges();
        }
        #endregion /*Không thay đổi*/
        public static int s_intNumberLogin = 0;
        private DBMain m_data = new DBMain();

        #region [Properties - Thuộc tính]
        public System_User Properties
        {
            get { return m_bds.Current as System_User; }
        }
        #endregion

        public System_UserInfo(string nUserName, string nPassword)
        {
                nPassword = nPassword.Encrypt();
                var IQuery = m_data.m_DCSave.System_Users.Where(iq => iq.UserName == nUserName && iq.Password == nPassword);
                m_bds.DataSource = IQuery;
               
        }
        public System_UserInfo(string nUserName)
        {
            var IQuery = m_data.m_DCSave.System_Users.Where(iq => iq.UserName == nUserName);
            m_bds.DataSource = IQuery;

        }
        public System_UserInfo()
        {
            Guid sys_UserKey = Guid.NewGuid();

            var IQuery = m_data.m_DCSave.System_Users.Where(p => p.System_UserKey == sys_UserKey);
            m_bds.DataSource = IQuery;
            var Row = IQuery.FirstOrDefault();
            if (Row == null)
            {
                System_User sys_User = new System_User();
                sys_User.System_UserKey = sys_UserKey;
                Row = sys_User;
                m_bds.Add(Row);
                m_bds.MoveLast();

            }
        }
        public System_UserInfo(Guid sys_UserKey)
        {

            var IQuery = m_data.m_DCSave.System_Users.Where(p => p.System_UserKey == sys_UserKey);
            m_bds.DataSource = IQuery;
            var Row = IQuery.FirstOrDefault();
            if (Row == null)
            {
                System_User sys_User = new System_User();
                sys_User.System_UserKey = sys_UserKey;
                Row = sys_User;
                m_bds.Add(Row);
                m_bds.MoveLast();

            }
        }
        public void Delete()
        {
            m_bds.DeleteCurrent();
        }

      

        public bool Login(string nUserName, string nPassword)
        {

            s_intNumberLogin++;
            if (nUserName == "" || nPassword == "")
            {
                MessageBox.Show("Tên đăng nhập hoặc mật khẩu không được rỗng");
            }
            else
            {

                if (Properties == null)
                    MessageBox.Show("Tài khoản và mật khẩu không hợp lệ. Vui lòng kiểm tra lại");
                else
                {
                    if (Properties.DisableAccount == true) //Nếu tài khoản đang bị Disable (chú ý! không tường minh code)
                    {
                        MessageBox.Show("Tài khoản này đã bị khoá,vui lòng liên hệ Admin", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        if (Properties.EndDay == null || Properties.EndDay > DateTime.Today)
                        {
                            if (Properties.LimitLoginNo == null || Properties.LimitLoginNo > Properties.LoginNo)
                            {
                                s_intNumberLogin = 0;
                                return true;
                            }
                            else
                            {
                                MessageBox.Show("Tài khoản này chỉ được đăng nhập " + Properties.LimitLoginNo + " lần,\n bạn đã đăng nhập quá số lần cho phép, vui lòng liên hệ Admin", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Tài khoản này đã hết hạn, vui lòng liên hệ Admin", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }

            }

            return false;
        }

    }
}
